home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / os2 / adaptor.zip / ADAPT.ZIP / adaptor / examples / laplace / overlap.f < prev    next >
Text File  |  1993-06-25  |  990b  |  37 lines

  1.       PROGRAM LAPLACE
  2.       REAL F(:,:), DF(:,:), HF(:,:[1:1])
  3.       INTEGER MAXX, MAXY
  4.       REAL FMAX
  5.       INTEGER ITER
  6. c
  7. c     read in sizes
  8. c
  9.       PRINT *,'MAXX = (z.B. 64) '
  10.       READ *,MAXX
  11.       PRINT *,'MAXY = (z.B. 64) '
  12.       READ *,MAXY
  13.       ALLOCATE (F(MAXX,MAXY),DF(MAXX,MAXY),HF(MAXX,MAXY))
  14. C
  15.       F = 2.
  16.       F(:,MAXY) = 1.
  17.       F(2:MAXX-1,2:MAXY-1) = 0.0
  18.       ITER = 0
  19.       FMAX = 1
  20.       DO WHILE (FMAX .gt. 0.001)
  21.          ITER = ITER + 1
  22.          HF  = F             ! makes boundaries of F local
  23.          FORALL (J=2:MAXY-1,I=2:MAXX-1)
  24.            DF(I,J) = (HF(I,J+1) + HF(I,J-1) +
  25.      &                HF(I-1,J) + HF(I+1,J) ) * 0.25 - F(I,J)
  26.          END FORALL
  27.          FORALL (J=2:MAXY-1,I=2:MAXX-1)
  28.             F(I,J) = F(I,J) + DF(I,J)
  29.          END FORALL
  30.          DF = ABS(DF)
  31.          FMAX = MAXVAL (DF)
  32.          PRINT *,'Iteration ',ITER,'  Max = ',FMAX
  33.       END DO
  34.       PRINT *, ITER, ' Iterationen benoetigt'
  35.       DEALLOCATE (HF, DF, F)
  36.       END
  37.